package cn.picclife.mwx.manager.sys.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.List;
import java.util.Map;

import cn.picclife.mwx.manager.sys.model.bo.BranchDataAuthBo;
import cn.picclife.mwx.manager.sys.model.bo.CommonBo;
import cn.picclife.mwx.manager.sys.model.bo.OperatorMenuInfo;
import cn.picclife.mwx.manager.sys.model.bo.PageCount;
import cn.picclife.mwx.manager.sys.model.bo.UserSessionBo;
import cn.picclife.mwx.manager.sys.model.po.DataAuthType;
import cn.picclife.mwx.manager.sys.model.po.Enum;
import cn.picclife.mwx.manager.sys.model.po.Operator;

/**
 * @ClassName: UserMgMtService
 * @Description:用户管理service层
 * @author hui
 * @date: 2016年12月8日 上午10:54:37 <br/>
 */
public interface UserMgMtService {
	int modifyUser(HttpServletRequest req,HttpServletResponse res,Operator operator);//用户信息修改
	int deleteUser(HttpServletRequest req,HttpServletResponse res,CommonBo commonBo);//用户信息删除
	int addUser(HttpServletRequest req,HttpServletResponse res,Operator user);//用户新增
	PageCount queryUser(HttpServletRequest req, HttpServletResponse res, PageCount pageCount);//用户查询
	Operator selectByOptnoAndPwd(String optNo,char[] password);//通过用户名和密码查询用户
	List<OperatorMenuInfo> queryUserMenuList(Operator operator);// 所有，包含按钮，转换为List<String>，设置给user对象，用于判断权限是否有
	List<BranchDataAuthBo> queryUserDeptListByOptno(String deptNo,boolean isStub);//查询机构
	DataAuthType queryAuthType();
	int addRoleUser(CommonBo commonBo, String user);//用户添加角色
	int addUserDataAuth(CommonBo commonBo,String user);//用户添加数据权限
	List<Map<String, Object>> getUserDataAuth(String userNo, String optNo);//根据登录名获取用户当前数据权限
	List<String> getUserDeptList(String optNo);//获取用户机构
	Operator getUserDetail(String optNo);//获取用户详情
	PageCount queryUserRoles(PageCount pageCount);//获取用户角色列表
	List<String> queryBranchList(String opt_no);
	UserSessionBo queryBranchByOptNo(String optNo);//查询机构信息
	List<Enum> queryEnumInfo(String enumType);//获取枚举信息
	int modifyUserPwd(Operator operator);//修改用户密码
	List<Enum> queryOptType();
	List<BranchDataAuthBo> queryUserDeptListByOptnoAuth(String branchId, boolean isStub, String opt_no);
}
